﻿using System;
using Maestro_Proveedores;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Maestro_Proveedores.evaluacionDeDesempeno.indicadores
{
    /// <remarks>
    /// <para>El indicador tiene como objetivo evaluar la calidad del proveedor de acuerdo al numero de llamados de atención que presente.</para>
    /// </remarks>
    class NumeroLLamadosAtencion : Indicador
    {
        private _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.PRV_llamados_atencionTableAdapter pRV_llamados_atencionTableAdapter = null;
        /// <summary>
        /// Cuando se crea una nueva instancia del indicador, se incializan todas sus variables y propiedades. Tanto las propias como las herededas de la calse Indicador
        /// </summary>
        public NumeroLLamadosAtencion()
        {
            this.Peso = 0.10;
            this.TipoIndicador = Enums.TipoIndicador.BienServicio;
            this.pRV_llamados_atencionTableAdapter = new _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.PRV_llamados_atencionTableAdapter();
        }
        /// <summary>
        /// Redefinicion del metodo toString()
        /// </summary>
        /// <returns>Nombre Completo del presente indicador</returns>
        public override string ToString()
        {
            return "Número de llamados de atención";
        }
        /// <summary>
        /// redefinición del metodo Calcular(), declarado en la clase padre Indicador como un metodo abstracto (se debe redefinir obligatoriamente en cualquier clase que herede de la clase Indicador)
        /// </summary>
        /// <returns></returns>
        protected override bool calcular()
        {
            string temp = this.pRV_llamados_atencionTableAdapter.Scalar_COUNT_llamadosAtencion(this.registroProveedor.id_proveedor, this.FechaInferior, this.FechaSuperior).ToString();

            if (temp.Equals(string.Empty))
            {
                this.Resultado = 0;
            }
            else
            {
                Resultado = double.Parse(temp);
            }

            //--- Le voy a descontar 2 puntos porcentuales por cada llamado de atencion que tenga el proveedor
            this.Resultado *= 2;
            return true;
        }
    }
}